

//-------Aliases-------//

private alias object.value0 : drawheight
private alias object.value1 : directionType
private alias object.value2 : collisionY

// Function declarations

reserve function WPL_DebugDraw
reserve function WPL_DebugSpawn
// Static Values

// Tables


function WPL_DebugDraw
	DrawSprite(0)
end function


function WPL_DebugSpawn
	CreateTempObject(TypeName[Water Plane], 12, object.xpos, object.ypos)
		object[tempObjectPos].value0 = object[tempObjectPos].propertyValue
		SetBit(object[tempObjectPos].value0, 0, 0)		
		object[tempObjectPos].value1 = object[tempObjectPos].propertyValue
		object[tempObjectPos].value1 &= 1	
		object[tempObjectPos].value2 = object[tempObjectPos].value0
		object[tempObjectPos].value2 *= 16
		object[tempObjectPos].value2 -= 8
		FlipSign(object[tempObjectPos].value2)
end function

event ObjectMain
	foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
		BoxCollisionTest(C_TOUCH, object.entityPos, -8, collisionY, 8, 8, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
		if checkResult == 1
			temp1 = object.propertyValue
			temp1 >>= 5
			if temp1 > 0
				switch directionType
					case 0 //right into water
						object[currentPlayer].value18 = 4
						break
					case 1 //right out of water
						object[currentPlayer].value18 = 2
						break			
				end switch				
			else
				switch directionType
					case 0 //right into water
						if object[currentPlayer].xvel >= 0
							object[currentPlayer].value18 = 2
						else
							object[currentPlayer].value18 = 4
						end if
						break
					case 1 //right out of water
						if object[currentPlayer].xvel <= 0
							object[currentPlayer].value18 = 2
						else
							object[currentPlayer].value18 = 4
						end if
						break			
				end switch
			end if
		end if
	next
end event


event ObjectDraw
	if object[0].type == TypeName[Debug Mode]
		temp0 = 0
		temp1 = object.ypos
		while temp0 < drawheight
			DrawSpriteXY(directionType, object.xpos, temp1)
			temp1 -= 0x100000
			temp0++
		loop
	end if
end event


event ObjectStartup
	LoadSpriteSheet("LZ/Objects.gif")
	SpriteFrame(-8, -8, 16, 16, 84, 173) //0 A
	SpriteFrame(-8, -8, 16, 16, 101, 173) //0 A
	foreach (TypeName[Water Plane], arrayPos0, ALL_ENTITIES)
		object[arrayPos0].value0 = object[arrayPos0].propertyValue
		object[arrayPos0].value0 &= 0x1F
		SetBit(object[arrayPos0].value0, 0, 0)		
		object[arrayPos0].value1 = object[arrayPos0].propertyValue
		object[arrayPos0].value1 &= 1	
		object[arrayPos0].value2 = object[arrayPos0].value0
		object[arrayPos0].value2 *= 16
		object[arrayPos0].value2 -= 8
		FlipSign(object[arrayPos0].value2)
	next
	
	SetTableValue(TypeName[Water Plane], DebugMode_ObjCount, DebugMode_TypesTable)
	SetTableValue(WPL_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)
	SetTableValue(WPL_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)
	DebugMode_ObjCount++
end event

event RSDKDraw
	DrawSprite(0)
end event

event RSDKLoad
	LoadSpriteSheet("Global/Display.gif")
	SpriteFrame(-16, -16, 32, 32, 1, 143)
end event
